﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using CROSLAND.BL.BE;
using CROSLAND.BL.BC;
using AjaxControlToolkit;

namespace CROSLAND.WebApp
{
    public partial class BuscaFact : System.Web.UI.Page
    {

        public List<PedidoBE> ListaBusqueda
        {
            get { return (Session["ListaReserva"] != null) ? (List<PedidoBE>)Session["ListaReserva"] : new List<PedidoBE>(); }
            set { Session["ListaReserva"] = value; }
        }

        protected void Page_Load(object sender, EventArgs e)
        {
            try
            {
                if (!Page.IsPostBack)
                {
                    if (string.IsNullOrEmpty(txtFechaInicio.Text))
                    {
                        txtFechaInicio.Text = DateTime.Today.ToString("dd/MM/yyyy");
                    }
                    if (string.IsNullOrEmpty(txtFechaFin.Text))
                    {
                        txtFechaFin.Text = DateTime.Today.ToString("dd/MM/yyyy");
                    }
                }
            }
            catch (Exception ex)
            {
                Session["Mensaje"] = ex.Message;
            }
            finally
            {
                ((Site)Master).muestraMensajes();
            }
        }

        protected void ibtnBuscar_Click(object sender, ImageClickEventArgs e)
        {
            try
            {
                this.buscarDocumentos();
            }
            catch (Exception ex)
            {
                Session["Mensaje"] = ex.Message;
            }
            finally
            {
                ((Site)Master).muestraMensajes();
            }
        }

        protected void buscarDocumentos()
        {
            PersonaBE objPersona = (PersonaBE)Session["PersonaWeb"];

            //if (objPersona != null)
            //{
                DateTime fecIni = Convert.ToDateTime(txtFechaInicio.Text);
                DateTime fecFin = Convert.ToDateTime(txtFechaFin.Text);
                string factura = (!string.IsNullOrEmpty(this.txtFactura.Text)) ? this.txtFactura.Text : null;
                string folio = (!string.IsNullOrEmpty(this.txtFolio.Text)) ? this.txtFolio.Text : null;
                string cliente = (!string.IsNullOrEmpty(this.txtCodCliente.Text)) ? this.txtCodCliente.Text : null;
                string material = (!string.IsNullOrEmpty(this.txtMaterial.Text)) ? this.txtMaterial.Text : null;
                string lote = (!string.IsNullOrEmpty(this.txtLote.Text)) ? this.txtLote.Text : null;
                string vendedor = (!string.IsNullOrEmpty(this.txtVendedor.Text)) ? this.txtVendedor.Text : null;

              
                UsuarioWebBE uWeb = new UsuarioWebBE();
                uWeb = (UsuarioWebBE)HttpContext.Current.Session["UsuarioWeb"];


                this.ListaBusqueda = PedidoBC.Instance.ListaFacturasVMS(factura, folio, fecIni, fecFin, cliente, uWeb.OrgVentas, uWeb.CanalDist, uWeb.centro, uWeb.sector, uWeb.OfVentas, material, lote, vendedor);

                Session["lstFacturas"] = ListaBusqueda;
                gvListado.PageIndex = 0;
                this.CargarGrilla();
                if (this.ListaBusqueda.Count == 0)
                {
                    Session["Mensaje"] = "No se encontró información para los parámetros seleccionados.";
                }
            //}
            //else
            //{
            //    Response.Redirect("Login.aspx");
            //}
        }

        protected void CargarGrilla()
        {
            ListaBusqueda = (List<PedidoBE>)Session["lstFacturas"];
            gvListado.DataSource = ListaBusqueda;
            gvListado.DataBind();
        }

        [System.Web.Services.WebMethod]
        [System.Web.Script.Services.ScriptMethod]
        public static string[] buscaClientes(string prefixText, int count)
        {
            string[] retVal;
            UsuarioWebBE uWeb = new UsuarioWebBE();
            uWeb = (UsuarioWebBE)HttpContext.Current.Session["UsuarioWeb"];
            List<ClienteBE> lstClientes = ClienteBC.Instance.buscarCliente("", prefixText, uWeb);
            List<string> lst = new List<string>();
            int total = lstClientes.Count < count ? lstClientes.Count : count;
            for (int i = 0; i < total; i++)
            {
                string item = AjaxControlToolkit.AutoCompleteExtender.CreateAutoCompleteItem(lstClientes[i].Descripcion, lstClientes[i].Codigo);
                lst.Add(item);
            }
            retVal = lst.ToArray();
            return retVal;
        }

        protected void gvListado_RowCommand(object sender, GridViewCommandEventArgs e)
        {
            if (e.CommandName == "Detalle")
            {
                int index = Convert.ToInt32(e.CommandArgument);
                GridViewRow row = gvListado.Rows[index];

                GridView gvTmp = (GridView)row.FindControl("gvDetalle");
                gvTmp.Visible = !gvTmp.Visible;

            }

        }

        //RGF 20111012
        protected void gvListado_PageIndexChanging(object sender, GridViewPageEventArgs e)
        {
            try
            {
                gvListado.PageIndex = e.NewPageIndex;
                CargarGrilla();
            }
            catch (Exception ex)
            {
                Session["Mensaje"] = ex.Message;
            }
        }
    }
}